This example demonstrates the implementation of NORRIS fracture model.

NORRIS Model :
DAMAG = (Total Effective Strain/(1-(C*Hydrostatic Stress)))

C is a material constant (in Pa^-1), which varies with the material. The value of C is read from GUI into routine using the Code:

CHARACTER*80 IUSRVL
COMMON /IUSR/ IUSRVL(10)

READ(IUSRVL(1),*)C


The model is apllied for Blanking operation.

The usr_dmg.f file contains user routine implemented in 


C********************************************************************

      SUBROUTINE USRDM2(STS,EFSTS,EFEPS,DAMAG,STRLMT,DTIME)
C********************************************************************
C
C
C
C********************************************************************

      IMPLICIT INTEGER*4 (I,J,K,L,M,N), REAL*8 (A-H,O-Z)
         CHARACTER*80 IUSRVL
         COMMON /IUSR/ IUSRVL(10)
C
C     SEE "USRDM1" FOR DETAILED IMPLEMENTATION
C
C  Additional element data available from the common block ELMCOM
C     COMMON /ELMCOM/
C
C         RZE     : Four corner coordinates
C         URZE    : Velocity
C         STSE    : Stress
C         EPSE    : Strain rate
C         EFEPSE  : effective strain rate
C         EFSTSE  : Effective stress
C         TEPSE   : Total effective strain
C         RDTYE   : Density
C         TEMPE   : Temperature
C         DTMPE   : Temperature rate
C         DAMAGE  : Damage value
C         USRE1   : Element user variable array at the begining of step
C         USRE2   : Element user variable array at the end of the step
C         USRNE   : Nodal user state variables at 4 nodes
C         NODEE   : Connectivity
C         KELE    : Global element number
C         KELEL   : Local element number
C         KGROUP  : Material group number
C

      COMMON /ELMCOM/ RZE(2,4),URZE(2,4),STSE(6),EPSE(6),EFEPSE,EFSTSE,
     +                TEPSE,RDTYE,TEMPE(4),DTMPE(4),DAMAGE,
     +                USRE1(1500),USRE2(1500),
     +                USRNE(1500,4),NODEE(4),KELE,KELEL,KGROU
      DIMENSION STS(4)
          READ(IUSRVL(1),*)C
          STSM=(STS(1)+STS(2))/2
          DAMAG = DAMAG+(TEPSE/(1-(C*STSM)))
      RETURN
      END


Executing the User routine:

Open the pre-processor and import FRAC_SI.KEY file from 2D_Examples folder. 

Go to Material properties and select advanced tab.  Select user routine for Damage and enter routine number as 2.(to call SUBROUTINE USRDM2)

Go to Simulation controls > Advanced > user Defined tab. 
For this example we will be using Material contant (C) value as 0.0007 Pa^-1, so in first row enter this value as 0.0007

Save the Key file and Generate DB. 

Make a copy of the release folder …\2D\UserRoutine\DEF_SIM (and usr_dmg.f modified as indicated above)

Open the FORTRAN Absoft 11 and open the DEFORM 2d user routine DEF_SIM_USR_Absoftv110.atools file from this copied location, 
and build local FEM engine DEF_SIM.EXE

Two ways to run this model using the user defined damage model 
1. 
Build the executing files and paste the generated DEF_SIM.EXE in "..\2D\" folder. (first backup release version of DEF_SIM.EXE)
Run the simulation and observe damage value in post processor after the completion of simulation.
2. 
create a file DEF_SIM_DIR.DAT with first line indicating the path to the folder holding this newly build DEF_SIM.EXE
Run the simulation and observe damage value in post processor after the completion of simulation.

